﻿using System;

namespace 控制台相关_习题
{
    class Program
    {
        static void Main(string[] args)
        {
            #region 练习
            //通过WASD在控制台中控制一个黄色方块上下左右移动

            //设置背景颜色
            Console.BackgroundColor = ConsoleColor.Red;
            Console.Clear();
            //设置光标显隐
            Console.CursorVisible = false;
            //声明方块坐标参数
            int x = 0;
            int y = 0;
            //使用WASD控制方块移动
            while (true)
            {
                //显示方块
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.SetCursorPosition(x, y);
                Console.Write('■');
                //读取玩家指令
                char c = Console.ReadKey(true).KeyChar;     //括号中bool值表示是否隐藏玩家输入内容
                //删去之前的方块
                Console.SetCursorPosition(x, y);
                Console.Write("  ");
                //实现WASD控制方块移动
                switch (c)
                {
                    case 'W':
                    case 'w':
                        y -= 1;
                        if (y < 0)
                        {
                            y = 0;
                        }
                        break;

                    case 'A':
                    case 'a':
                        x -= 2;     //一个中文字符占两个x坐标单位，一个y坐标单位
                        if(x < 0)
                        {
                            x = 0;
                        }
                        break;

                    case 'S':
                    case 's':
                        y += 1;
                        if(y>Console.BufferHeight - 1)
                        {
                            y -= 1;
                        }
                        break;

                    case 'D':
                    case 'd':
                        x += 2;
                        if(x>Console.BufferWidth - 2)
                        {
                            x-= 2;
                        }
                        break;
                }

            }
            #endregion
        }
    }
}
